# MyDjango项目的URL配置。
"""
`urlpatterns`列表将URL映射到视图函数。更多详细信息，请访问：
     https://docs.djangoproject.com/en/5.0/topics/http/urls/
示例：
函数视图
     1. 导入：   from my_app import views
     2. 将URL添加到urlpatterns：   path('', views.home, name='home')
基于类的视图
     1. 导入：   from other_app.views import Home
     2. 将URL添加到urlpatterns：   path('', Home.as_view(), name='home')
包括另一个URL配置
     1. 导入include()函数：从django.urls导入include, path
     2. 将URL添加到urlpatterns：   path('blog/', include('blog.urls'))
"""

# 导入Django的path和re_path以及当前应用的视图模块
from django.urls import path, re_path
from .views import *
from django.views.generic import RedirectView

# urlpatterns列表，定义了URL和视图函数的映射关系
urlpatterns = [
     # 将根URL映射到index视图函数
     path("", index),
     # 字符类型的路由
     path('greet/<str:name>/', greet),
     # 整型的路由
     path('age/<int:age>/', show_age),
     # slug类型的路由
     path('page/<slug:page_slug>/', show_page),
     # uuid类型的路由
     path('userid/<uuid:user_uuid>/', show_user_profile),
     # 使用正则表达式定义的路由
     re_path(r'user/(?P<name>[a-zA-Z]+)/(?P<age>[0-9]{2})', getName),
     # 使用正则表达式定义的路由：年-月-日
     re_path(r'^time/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$', getTime, name='getTime'),
     path('setTime/', get_html_time, name='set_time'),

     # 反解析reverse和resolve函数
     re_path(r'^reverse/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$', g_reverse, name='g_reverse'),
     path('resolve/', g_resolve, name='g_resolve'),
     path("ab/",a_b, name="ab"),
     path("b/",b, name="b"),
     path("cd/",RedirectView.as_view(url="/D_URL/b/") , name="cd"),
]